/*
 * @Description: 评论模型
 * @Author: zheng yiliang
 * @Date: 2021-04-13 20:58:34
 * @LastEditTime: 2021-05-29 19:19:21
 * @LastEditors: zheng yiliang
 */

const mongoose = require('../core/mongodb')
const { Schema, model } = mongoose
const autoIncrement = require('mongoose-auto-increment-fix');

// 评论模型
const commentSchema = new Schema({
  // 评论所在的文章 id
  article_id: { type: Schema.Types.ObjectId, required: true },

  // comment
  comment: { type: String, required: true, validate: /\S+/ },

  // 是否置顶
  is_top: { type: Boolean, default: false },

  // 被赞数
  likes: { type: Number, default: 0 },

  // 用户 id
  user_id: { type: String, ref: 'WebUser', required: true },

  // 第三者评论
  reply: [
    {
      is_handle: { type: Number, default: 2 },
      id: { type: Schema.Types.ObjectId, required: true },
      // 谁在评论
      from: { type: String, required: true, default: '' },
      fromId: { type: String },
      fromAvatar: { type: String, default: 'user' },
      // 用户类型 0：博主 1：其他用户
      fromType: { type: Number, default: 1 },
      // 对谁评论
      to: { type: String, required: true, default: '' },
      toId: { type: String },
      toAvatar: { type: String, default: 'user' },
      // 用户类型 0：博主 1：其他用户
      toType: { type: Number, default: 1 },
      comment: { type: String, required: true, validate: /\S+/ },
      // 被赞数
      likes: { type: Number, default: 0 },
      // 状态 => 0 待审核 / 1 通过正常 / -1 已删除 / -2 垃圾评论
      state: { type: Number, default: 1 },
      // 创建日期
      create_time: { type: Date, default: Date.now },
    },
  ],

  // 状态 => 0 待审核 / 1 通过正常 / -1 已删除 / -2 垃圾评论
  state: { type: Number, default: 1 },

  // 是否已经处理过 => 1 是 / 2 否 ；新加的评论需要审核，防止用户添加 垃圾评论
  is_handle: { type: Number, default: 2 },

  // 创建日期
  create_time: { type: Date, default: Date.now },

  // 最后修改日期
  update_time: { type: Date, default: Date.now },
});

// 自增 ID 插件配置



// 评论模型
module.exports = model('Comment', commentSchema);
